Technotes


ColorSync Q&As



Technote QD 520June 1993



Revised by: Developer Support Center September 1993
Written by: Developer Support Center June 1993

This Technical Note contains a collection of archived Q&As relating to a specific topic--questions sent the Developer Support Center (DSC) along with answers from the DSC engineers. Current Q&A's can be found on the Macintosh Technical Q&A's web site.


CWNewColorWorld CWorld parameter

Date Written: 2/22/93

Date reviewed: 7/2/93

Can I assume that the value of the ColorSync CWorld parameter returned by the CWNewColorWorld routine isn't null if the routine was successful? I'd like to determine whether a color world exists by checking the variable for null.

___

You can assume that if no error is returned by CWNewColorWorld, the CWorld parameter will be a valid handle. In other words, it won't be null if no error is returned.

CMProfileResponse data structure

Date Written: 3/18/93

Last reviewed: 6/24/93

How do I access fields within the CMProfile data structure?

___

Use the structures defined in the CMApplication.h file. These structures will allow you to directly access all fields up to the profileName. You can't access the profileName directly because the CMProfileResponse record is variable size. You can determine the profileName by using the GetProfileName call. Likewise, the customData must also be accessed in this way by using the GetProfileAdditionalDataOffset call.

ColorSync documentation

Date Written: 2/8/93

Last reviewed: 4/1/92

Do you have any documentation that describes ColorSync in more detailed than "The ColorSync Utilities" on the Developer CD? I want to develop a ColorSync-aware printer driver and application.

___

The "ColorSync Utilities" document on the Developer CD is a preliminary draft. Apple is updating it to include more sample code and descriptive explanations. The final document will be included as a chapter in Apple's forthcoming Inside Macintosh: QuickDraw reference, which will be available later this year.

"ColorSync: A Tuning Fork for Color," in the February issue of Apple Direct, provides a ColorSync overview. Also, the Print Hints column in the June 1993 issue of develop, "ColorSync and Printing," addresses ColorSync implementation issues for products such as yours.

How Apple Color Printer uses ColorSync

Date Written: 2/8/93

Last reviewed: 6/14/93

What's the mechanism the Apple Color Printer driver uses for ColorSync?

___

The Apple Color Printer uses the low-level ColorSync color-matching calls to perform color matching in the print bottleneck routines. Thus, color matching happens before rendering so that rendering always occurs with matched colors. For more information, see the section called "What does a printer driver have to do?" in the Print Hints column of the June 1993 issue of develop.

ColorSync 1.0.2 fixes kNumColorsToMatch bug

Date Written: 1/20/93

Last reviewed: 6/14/93

I tried calling CMMatchColors with different numbers of colors to match; 10,000 worked fine, but 50,000 or greater crashed with a bus error. Is this a bug?

___

This is a bug in ColorSync 1.0 and 1.0.1. The "for" loop inside the Apple CMM uses a short rather than a long. It's been fixed for version 1.0.2.

ColorSync responders

Date Written: 1/18/93

Last reviewed: 6/14/93

Which ColorSync responders can I rely on? The ColorSync cdev as I understand it yields the system responder. I don't have anything else (for example, Color Printer driver); how do I get a monitor and printer responder?

___

The ColorSync documentation doesn't discuss responders very well. A system profile responder is always available if ColorSync is installed. It can be used only to set the current system profile and to get the current system profile. A printer profile isn't registered normally and has to be registered by the printer driver when requested to do so with a PrGeneral call.

For more information, please read "Syncing up with ColorSync" in issue 14 of develop.

MatchColors and profile handles for CMYK or RGB conversion

Date Written: 1/18/93

Last reviewed: 6/14/93

How do I get the right ProfileHandles to convert CMYK to RGB data and vice versa via the low-level MatchColors call? All routines now are returning "Responder errors" (-180 and -182), a description that doesn't help much at the moment.

___

To convert CMYK to RGB, you need to have a proper source profile specifying that the data is in CMYK format (dataType = "CMYK"), and a proper destination profile specifying that the data is in RGB format (dataType = "RGB "). You can use ProfileMaker to modify a current profile (that is, 13" RGB) to create the CMYK format; or, you can also use the current system profile obtained by calling GetProfile.




Technotes
Previous Technote | Contents | Next Technote